package cn.cttic.order.api.domain.bo;

import cn.cttic.order.api.domain.BaseInstallOrderMainPage;
import cn.cttic.common.mybatis.core.domain.BaseEntity;
import cn.cttic.common.core.validate.AddGroup;
import cn.cttic.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

/**
 * 行驶证主页数据业务对象 base_install_order_main_page
 *
 * @author Times.Studio
 * @date 2024-10-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = BaseInstallOrderMainPage.class, reverseConvertGenerate = false)
public class BaseInstallOrderMainPageBo extends BaseEntity {

    /**
     * 标识
     */
    @NotBlank(message = "标识不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 销售订单
     */
    @NotBlank(message = "销售订单不能为空", groups = { AddGroup.class, EditGroup.class })
    private String saleOrderId;

    /**
     * 安装订单
     */
    @NotBlank(message = "安装订单不能为空", groups = { AddGroup.class, EditGroup.class })
    private String installOrderId;

    /**
     * 资源ID
     */
    @NotBlank(message = "资源ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ossId;

    /**
     * 资源地址
     */
    @NotBlank(message = "资源地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String ossUrl;

    /**
     * 车辆识别代号
     */
    @NotBlank(message = "车辆识别代号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicleId;

    /**
     * 住址
     */
    @NotBlank(message = "住址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String address;

    /**
     * 发证单位
     */
    @NotBlank(message = "发证单位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String issuedBy;

    /**
     * 发证日期
     */
    @NotBlank(message = "发证日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String issuedDate;

    /**
     * 品牌型号
     */
    @NotBlank(message = "品牌型号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String brandModel;

    /**
     * 车辆类型
     */
    @NotBlank(message = "车辆类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicleType;

    /**
     * 所有人
     */
    @NotBlank(message = "所有人不能为空", groups = { AddGroup.class, EditGroup.class })
    private String belongTo;

    /**
     * 使用性质
     */
    @NotBlank(message = "使用性质不能为空", groups = { AddGroup.class, EditGroup.class })
    private String usingProperty;

    /**
     * 发动机号码
     */
    @NotBlank(message = "发动机号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String engineNo;

    /**
     * 号牌号码
     */
    @NotBlank(message = "号牌号码不能为空", groups = { AddGroup.class, EditGroup.class })
    private String carNo;

    /**
     * 注册日期
     */
    @NotBlank(message = "注册日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private String registerDate;


}
